/**
 * Project: portal
 * Created: 2016年7月20日
 * Copyright ©2011 - 2016 gopay Information Technology Co., LTD All Rights Reserved
**/
package com.gopay.common.domain.cbrmb.draw;

import java.io.Serializable;

/** 
 * <P>ClassName: CbrmbDrawDTO 
 * <P>Description:
 * @author junjie.ge 
 * @date 2016年7月20日 下午3:44:18  
 */

public class CbrmbDraw implements Serializable {
	private static final long serialVersionUID = -2865830490201807416L;
	public static final String CPS_TICKET_DATAMAP_KEY = "CB_RMB_DRAW";
	private CbrmbDrawAction action;
	private CbrmbDrawInitDTO init; // 初始化对象
	private CbrmbDrawApplyDTO apply; // 申请对象
	private CbrmbDrawConfirmDTO confirm; // 下单对象
	private CbrmbDrawDisplayDTO display; // 展示订单对象
	private CbrmbDrawAuditingDTO auditing; // 审核对象
	private CbrmbDrawForceUpdateDTO forceUpdate; // 强制更新对象
	private CbrmbDrawForceUpdateAllocationDTO forceUpdateAllocation; //强制更新划拨状态
	private CbrmbDrawRetryOfferDTO retryOffer; // 重发报盘
	private CbrmbDrawManualDTO manual; // 查询审核对象
	private CbrmbDrawSettleDTO settle; // 结算对象
	private CbrmbDrawRefundDTO refund; // 退款对象
	
	/**
	 * @return the action
	 */
	public CbrmbDrawAction getAction() {
		return action;
	}

	/**
	 * @param action the action to set
	 */
	public void setAction(CbrmbDrawAction action) {
		this.action = action;
	}

	/**
	 * @return the init
	 */
	public CbrmbDrawInitDTO getInit() {
		return init;
	}

	/**
	 * @param init the init to set
	 */
	public void setInit(CbrmbDrawInitDTO init) {
		this.init = init;
	}

	/**
	 * @return the apply
	 */
	public CbrmbDrawApplyDTO getApply() {
		return apply;
	}

	/**
	 * @param apply the apply to set
	 */
	public void setApply(CbrmbDrawApplyDTO apply) {
		this.apply = apply;
	}

	/**
	 * @return the display
	 */
	public CbrmbDrawDisplayDTO getDisplay() {
		return display;
	}

	/**
	 * @param display the display to set
	 */
	public void setDisplay(CbrmbDrawDisplayDTO display) {
		this.display = display;
	}
	/**
     * @return the auditing
     */
    public CbrmbDrawAuditingDTO getAuditing() {
        return auditing;
    }

    /**
     * @param auditing the auditing to set
     */
    public void setAuditing(CbrmbDrawAuditingDTO auditing) {
        this.auditing = auditing;
    }

    /**
     * @return the manual
     */
    public CbrmbDrawManualDTO getManual() {
        return manual;
    }

    /**
     * @param manual the manual to set
     */
    public void setManual(CbrmbDrawManualDTO manual) {
        this.manual = manual;
    }

    /**
	 * @return the settle
	 */
	public CbrmbDrawSettleDTO getSettle() {
		return settle;
	}

	/**
	 * @param settle the settle to set
	 */
	public void setSettle(CbrmbDrawSettleDTO settle) {
		this.settle = settle;
	}

	/**
	 * @return the refund
	 */
	public CbrmbDrawRefundDTO getRefund() {
		return refund;
	}

	/**
	 * @param refund the refund to set
	 */
	public void setRefund(CbrmbDrawRefundDTO refund) {
		this.refund = refund;
	}
	
	/**
	 * @return the confirm
	 */
	public CbrmbDrawConfirmDTO getConfirm() {
		return confirm;
	}

	/**
	 * @param confirm the confirm to set
	 */
	public void setConfirm(CbrmbDrawConfirmDTO confirm) {
		this.confirm = confirm;
	}

	public CbrmbDrawForceUpdateDTO getForceUpdate() {
        return forceUpdate;
    }

    public void setForceUpdate(CbrmbDrawForceUpdateDTO forceUpdate) {
        this.forceUpdate = forceUpdate;
    }

    public CbrmbDrawForceUpdateAllocationDTO getForceUpdateAllocation() {
        return forceUpdateAllocation;
    }

    public void setForceUpdateAllocation(CbrmbDrawForceUpdateAllocationDTO forceUpdateAllocation) {
        this.forceUpdateAllocation = forceUpdateAllocation;
    }

    public CbrmbDrawRetryOfferDTO getRetryOffer() {
        return retryOffer;
    }

    public void setRetryOffer(CbrmbDrawRetryOfferDTO retryOffer) {
        this.retryOffer = retryOffer;
    }

    /**
	 * 跨境人民币提现动作
	 * <P>ClassName: DrawAction 
	 * @author junjie.ge 
	 * @date 2016年7月20日 下午4:14:16
	 */
	public static enum CbrmbDrawAction {
		/**
		 * 提现初始化
		 */
		INIT,
		/**
		 * 境内提现申请
		 */
		IN_BORDER_APPLY,
		/**
		 * 境外提现申请
		 */
		OUT_BORDER_APPLY,
		/**
		 * 确认提现订单
		 */
		CONFIRM,
		/**
		 * 提现结果展示
		 */
		DISPLAY,
		/**
		 * 提现审核批准
		 */
		APPROVAL,
		/**
		 * 提现审核拒绝
		 */
		REJECTION,
		/**
		 * 强制更新付款状态
		 */
		FORCE_UPDATE_PAYMENT_STATUS,
		/**
		 * 强制更新划拨状态
		 */
		FORCE_UPDATE_ALLOCATION_STATUS,
		/**
		 * 重发报盘
		 */
		RETRY_OFFER,
		/**
		 * 提现账务处理
		 */
		MANUAL,
		/**
		 * 提现自动结算
		 */
		AUTO_SETTLE,
		/**
		 * 提现退款申请
		 */
		REFUND_APPLY,
		/**
		 * 提现退款审核初审
		 */
		REFUND_APPROVAL_STEP_ONE,
		/**
         * 提现退款审核终审
         */
		REFUND_APPROVAL_STEP_TWO,
		/**
		 * 提现退款完成
		 */
		REFUND_COMPLETE;
	}
}
